package com.example.demo.mapper;

import com.example.demo.entity.apply;
import com.example.demo.entity.teacher;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.time.LocalDateTime;
import java.util.List;

@Mapper
@Repository
public interface applyMapper {

    //查询所有的请假申请
    public List<apply> selectall();

    //提交申请

    /**
     *
     * @param name 学生姓名
     * @param goTime 出去时间
     * @param endTime 回来时间
     * @param sec 请假理由
     * @param type 请假类型
     * @param teacher 审批老师
     * @param liveTime 请假时长
     * @return
     */
    public Integer addapply(@Param("name")String name, @Param("goTime")LocalDateTime goTime,@Param("endTime")LocalDateTime endTime,
    @Param("type")String type,@Param("sec")String sec,@Param("teacher")String teacher,@Param("liveTime")Integer liveTime,@Param("userId")String userId,@Param("teacherId")Integer teacerId);

    /**
     * 教职工查询所有要审批的请假表
     * @param id 教师id
     */
    public List<apply> studentSel(@Param("id")Integer id);

    /**
     * 教职工审批请假单 修改apply_type值
     * @param id 主键id
     * @param teacher 教职工id
     * 这里不用@Param mybatis会无法传入参数 不知道why
     */
    public Integer teacherSelete(@Param("teacher") Integer teacher,@Param("id") Integer id,@Param("type")Integer type);

    /**
     * 学生查看自己的请假记录
     * @param userId 学号
     * @return
     */
    public List<apply> student(@Param("userId")String userId);

    /**
     * 查看指定的请假记录情况
     * @param id 请假单号
     * @return
     */
    public apply studentSelete(@Param("id")Integer id);

    public Integer countAll(@Param("teacherId")Integer teacherId);

    public List<teacher> selectTeacher();

    public List<apply> guiangliyuanList();


    public List<apply> chazhaoUserId(@Param("userId")String userId);


    public List<apply> selectNoApply(@Param("userId")String userId);

    List<apply> selectAllreject(@Param("userId") String userId);

    Integer deleteApply(@Param("userId")Integer id);
}
